home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / parser / ContentModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.7 KB  |  164 lines

  1. package javax.swing.text.html.parser;
  2.  
  3. import java.io.Serializable;
  4. import java.util.Vector;
  5.  
  6. public final class ContentModel implements Serializable {
  7.    public int type;
  8.    public Object content;
  9.    public ContentModel next;
  10.    private boolean[] valSet;
  11.    private boolean[] val;
  12.  
  13.    public ContentModel() {
  14.    }
  15.  
  16.    public ContentModel(int var1, Object var2, ContentModel var3) {
  17.       this.type = var1;
  18.       this.content = var2;
  19.       this.next = var3;
  20.    }
  21.  
  22.    public ContentModel(int var1, ContentModel var2) {
  23.       this(var1, var2, (ContentModel)null);
  24.    }
  25.  
  26.    public ContentModel(Element var1) {
  27.       this(0, var1, (ContentModel)null);
  28.    }
  29.  
  30.    public boolean empty() {
  31.       switch (this.type) {
  32.          case 38:
  33.          case 44:
  34.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  35.                if (!var2.empty()) {
  36.                   return false;
  37.                }
  38.             }
  39.  
  40.             return true;
  41.          case 42:
  42.          case 63:
  43.             return true;
  44.          case 43:
  45.          case 124:
  46.             for(ContentModel var1 = (ContentModel)this.content; var1 != null; var1 = var1.next) {
  47.                if (var1.empty()) {
  48.                   return true;
  49.                }
  50.             }
  51.  
  52.             return false;
  53.          default:
  54.             return false;
  55.       }
  56.    }
  57.  
  58.    public Element first() {
  59.       switch (this.type) {
  60.          case 38:
  61.          case 42:
  62.          case 63:
  63.          case 124:
  64.             return null;
  65.          case 43:
  66.          case 44:
  67.             return ((ContentModel)this.content).first();
  68.          default:
  69.             return (Element)this.content;
  70.       }
  71.    }
  72.  
  73.    public boolean first(Object var1) {
  74.       switch (this.type) {
  75.          case 38:
  76.          case 124:
  77.             Element var4 = (Element)var1;
  78.             if (this.valSet == null) {
  79.                this.valSet = new boolean[Element.maxIndex + 1];
  80.                this.val = new boolean[Element.maxIndex + 1];
  81.             }
  82.  
  83.             if (this.valSet[var4.index]) {
  84.                return this.val[var4.index];
  85.             }
  86.  
  87.             for(ContentModel var3 = (ContentModel)this.content; var3 != null; var3 = var3.next) {
  88.                if (var3.first(var1)) {
  89.                   this.val[var4.index] = true;
  90.                   break;
  91.                }
  92.             }
  93.  
  94.             this.valSet[var4.index] = true;
  95.             return this.val[var4.index];
  96.          case 42:
  97.          case 43:
  98.          case 63:
  99.             return ((ContentModel)this.content).first(var1);
  100.          case 44:
  101.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  102.                if (var2.first(var1)) {
  103.                   return true;
  104.                }
  105.  
  106.                if (!var2.empty()) {
  107.                   return false;
  108.                }
  109.             }
  110.  
  111.             return false;
  112.          default:
  113.             return this.content == var1;
  114.       }
  115.    }
  116.  
  117.    public void getElements(Vector var1) {
  118.       switch (this.type) {
  119.          case 38:
  120.          case 44:
  121.          case 124:
  122.             for(ContentModel var2 = (ContentModel)this.content; var2 != null; var2 = var2.next) {
  123.                var2.getElements(var1);
  124.             }
  125.             break;
  126.          case 42:
  127.          case 43:
  128.          case 63:
  129.             ((ContentModel)this.content).getElements(var1);
  130.             break;
  131.          default:
  132.             var1.addElement(this.content);
  133.       }
  134.  
  135.    }
  136.  
  137.    public String toString() {
  138.       switch (this.type) {
  139.          case 38:
  140.          case 44:
  141.          case 124:
  142.             char[] var1 = new char[]{' ', (char)this.type, ' '};
  143.             String var2 = "";
  144.  
  145.             for(ContentModel var3 = (ContentModel)this.content; var3 != null; var3 = var3.next) {
  146.                var2 = var2 + var3;
  147.                if (var3.next != null) {
  148.                   var2 = var2 + new String(var1);
  149.                }
  150.             }
  151.  
  152.             return "(" + var2 + ")";
  153.          case 42:
  154.             return String.valueOf(this.content) + "*";
  155.          case 43:
  156.             return String.valueOf(this.content) + "+";
  157.          case 63:
  158.             return String.valueOf(this.content) + "?";
  159.          default:
  160.             return this.content.toString();
  161.       }
  162.    }
  163. }
  164.